+++ /dev/null
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using Microsoft.Xna.Framework;
-using Microsoft.Xna.Framework.Graphics;
-
-namespace SuperPolarity
-{
- class Bullet : Actor
- {
- protected ParticleEngine particleEngine;
- public int Power;
-
- public Bullet(SuperPolarity newGame)
- : base(newGame)
- {
- }
-
- ~Bullet()
- {
- particleEngine = null;
- }
-
- public override void Initialize(Texture2D texture, Vector2 position)
- {
- base.Initialize(texture, position);
- BoxDimensions.X = 10;
- BoxDimensions.Y = 10;
- BoxDimensions.W = 10;
- BoxDimensions.Z = 10;
- MaxVelocity = 8;
- InitBox();
- particleEngine = ParticleEffectFactory.CreateBullet(position);
- }
-
- public override void Update(GameTime gameTime)
- {
- Velocity.X = (float)(MaxVelocity * Math.Cos(Angle));
- Velocity.Y = (float)(MaxVelocity * Math.Sin(Angle));
-
- Power = 1;
-
- Position += Velocity;
- UpdateBox();
-
- particleEngine.Update();
- particleEngine.EmitterLocation = Position;
- }
-
- public override void Draw(SpriteBatch spriteBatch)
- {
- base.Draw(spriteBatch);
- particleEngine.Draw(spriteBatch);
- }
-
- public override void Collide(Actor other, Rectangle collision)
- {
- if (Dying) { return; }
- if (other.GetType().IsAssignableFrom(typeof(StandardShip)))
- {
- Die();
- return;
- }
- }
-
- protected override void Die()
- {
- ActorManager.CheckOut(this);
- Renderer.CheckOut(this);
- Parent.Children.Remove(this);
- }
-
- public override void CleanUp()
- {
- base.CleanUp();
- this.particleEngine = null;
- }
- }
-}